#include <stdio.h>
int test(int first, ...)  
 {  
     int count = 0;  
   
     char *ap ;  
     ap = (char*)(&first);//得到参数列表的起始地址  
   
     ap = ap + 4;//加上4跳过第一个参数first  
     while(count++ < first){//这里first参数表示有多少个参数  
         printf("*ap:%d\n", *((int *)ap));//把参数列表中的参数都挨个打印出来  
         ap += 4;//指向下一个参数  
     }     
     return *ap;  
 }  
 //下面是测试程序  
 int main(void)  
  {  
       int i = 1, j = 2, k = 3, z = 4, num = 4;  
            printf("test1:\n");  
                 test(num, i, j, k, z);   
                    
                         num = 3;  
                              printf("\ntest2:\n");  
                                   test(num, i, j, k);   
                                        return 0;  
                                           
                                            }
